package cn.darkhorse.device.pojo;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 维修单
 * </p>
 *
 * @author maoguanjun
 * @since 2024-05-06
 */
@Getter
@Setter
  @TableName("mes_repair_info")
@ApiModel(value = "MesRepairInfo对象", description = "维修单")
public class MesRepairInfo implements Serializable {

    private static final long serialVersionUID = 1L;

      @ApiModelProperty("主键")
        @TableId(value = "id", type = IdType.AUTO)
      private Long id;

      @ApiModelProperty("报修单号")
      private String applyNum;

      @ApiModelProperty("审核状态（0：待审1：待派工2：待维修3：维修中4:待验证5：已完成6：已驳回）")
      private Integer auditStatus;

      @ApiModelProperty("所属部门")
      private Long dept;

      @ApiModelProperty("设备id")
      private Long deviceId;

      @ApiModelProperty("设备名称")
      private String deviceName;

      @ApiModelProperty("设备编号")
      private String deviceCode;

      @ApiModelProperty("设备代号")
      private String deviceMark;

      @ApiModelProperty("设备规格")
      private String deviceModel;

      @ApiModelProperty("设备类型")
      private Long deviceType;

      @ApiModelProperty("设备标签0：一般设备1：重点设备2:其他设备")
      private Integer deviceTags;

      @ApiModelProperty("故障类别 0：机械故障1：电气故障")
      private Long malfunctionType;

      @ApiModelProperty("故障描述")
      private String malfunctionDescription;

      @ApiModelProperty("故障等级 0：紧急1：一般2：其他")
      private Integer malfunctionLevel;

      @ApiModelProperty("故障图片")
      private String malfunctionPic;

      @ApiModelProperty("紧急程度 0：紧急1：高2：中3：低")
      private Integer urgency;

      @ApiModelProperty("报修人")
      private String repairer;

      @ApiModelProperty("发生时间")
      private LocalDateTime repairDate;

      @ApiModelProperty("报修人电话")
      private String repairerPhone;

      @ApiModelProperty("维修单号")
      private String repairNum;

      @ApiModelProperty("是否停机 0：否1：是")
      private Integer isStop;

      @ApiModelProperty("故障来源 0：设备使用人1：巡检人员2：点检人员3：日常维护4:快速工单")
      private Integer malfunctionSource;

      @ApiModelProperty("班组名称")
      private String teamName;

      @ApiModelProperty("审核角色")
      private String approvalRole;

      @ApiModelProperty("实际班组名称")
      private String realTeamName;

      @ApiModelProperty("维修人员")
      private String repairPersons;

      @ApiModelProperty("主修人")
      private Long mainRepairers;

      @ApiModelProperty("实际是否停机 0：否1：是")
      private Integer realIsStop;

      @ApiModelProperty("故障原因")
      private Integer malfunctionReason;

      @ApiModelProperty("维修级别")
      private Integer repairLevel;

      @ApiModelProperty("维修类别")
      private Integer repairType;

      @ApiModelProperty("停机小时")
      private Integer stopHour;

      @ApiModelProperty("停机分钟")
      private Integer stopMinute;

      @ApiModelProperty("维修开始时间")
      private LocalDateTime repairStartTime;

      @ApiModelProperty("维修结束时间")
      private LocalDateTime repairEndTime;

      @ApiModelProperty("维修小时")
      private Integer repairHour;

      @ApiModelProperty("维修分钟")
      private Integer repairMinute;

      @ApiModelProperty("维修描述")
      private String repairDescription;

      @ApiModelProperty("维修费用")
      private BigDecimal repairCost;

      @ApiModelProperty("是否修复")
      private Integer isFixed;

      @ApiModelProperty("是否更换配件（0：否1：是）")
      private Integer applyStatus;

      @ApiModelProperty("附件")
      private String attachments;
      @ApiModelProperty("音频附件")
      private String mediaAttachments;

      private Long verifier;
      @ApiModelProperty("验证角色")
      private String verifyRole;

      @ApiModelProperty("验证时间")
      private LocalDateTime verifyTime;

      @ApiModelProperty("创建时间")
      private LocalDateTime gmtCraeate;

      @ApiModelProperty("创建人")
      private Long creator;

      @ApiModelProperty("删除标志")
      private Integer delFlag;

      @ApiModelProperty("当前审核人")
      @TableField(updateStrategy = FieldStrategy.IGNORED)
      private Long currentApprover;
      @ApiModelProperty("维修状态（0：待派单1：待接单2：维修中3：已完成）")
      private Integer repairStatus;

      @ApiModelProperty("完成时间")
      private LocalDateTime finishDate;

      @ApiModelProperty("接单人")
      private Long receiver;

      @ApiModelProperty("接单时间")
      private LocalDateTime receiveDate;

      @ApiModelProperty("登记制单人")
      private Long receiveCreator;

      @ApiModelProperty("登记制单时间")
      private LocalDateTime receiveCreatorDate;

      @ApiModelProperty("审核人")
      private Long approver;

      @ApiModelProperty("审核时间")
      private LocalDateTime approveTime;

      @ApiModelProperty("登记制单部门")
      private Long reviceCreatorDept;

      @ApiModelProperty("备件使用情况")
      private String spareUseInfo;

      @ApiModelProperty("维修过程描述")
      private String repairProcessDescription;

      @ApiModelProperty("报修故障类型")
      private String malfunctionTypeStr;

      @ApiModelProperty("维修故障类型")
      private String repairMalfunctionTypeStr;

      @ApiModelProperty("维修故障描述")
      private String repairMalfunctionDescription;

      @ApiModelProperty("已分配人员")
      private String assignedPersons;

      @ApiModelProperty("实际维修人员")
      private String maintenancePersons;

      @TableField(exist = false)
      @ApiModelProperty("位置")
      private String position;

      @ApiModelProperty("设备处置")
      private Integer disposal;

      @ApiModelProperty("验证描述/外委原因")
      private String reason;
}